package paq_negocio;

import com.sun.rowset.CachedRowSetImpl;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.ejb.Stateless;
import paq_clase_interfaz.interfaz_asignatura;
import paq_entidades.enti_asignatura;
import paq_entidades.enti_modulo;
import paq_entidades.enti_variables;
import paq_sentencias.Ejecutarsql;

@Stateless
public class neg_asignatura implements interfaz_asignatura {

    enti_variables v = new enti_variables();
    enti_asignatura entidad = new enti_asignatura();
    enti_modulo mo = new enti_modulo();
    Ejecutarsql ejec = new Ejecutarsql();

    @Override
    public void insertar(String nombre, Integer numerocred, String tipo, String mod_codigo) {
        entidad.setCreditos(numerocred);
        entidad.setNombre(nombre);
        entidad.setTipo(tipo);
        mo.setCodigo(mod_codigo);
        String sql = "insert into asignatura (asig_codigo,asig_nombre,asig_numerocreditos,ti_codigo,mod_codigo) values(concat('asi',asig.NextVal),'" + entidad.getNombre() + "'," + entidad.getCreditos() + ",'" + entidad.getTipo() + "','" + mo.getCodigo() + "')";
        ejec.ejecutar2(sql);
        v.msm = ejec.getMen();
    }

    @Override
    public void eliminar(String al_codigo) {
        entidad.setCodigo(al_codigo);
        String sql = "delete from  asignatura where asig_codigo='" + entidad.getCodigo() + "'";
        ejec.ejecutar2(sql);
        v.msm = ejec.getMen();
    }

    @Override
    public void actualizar(String al_codigo, String nombre, Integer numerocred, String tipo, String mod) {
        entidad.setCodigo(al_codigo);
        entidad.setCreditos(numerocred);
        entidad.setNombre(nombre);
        entidad.setTipo(tipo);
        mo.setCodigomodulo(mod);
        String sql = "update asignatura set asig_nombre='" + entidad.getNombre() + "',asig_numerocreditos='" + entidad.getCreditos() + "',ti_codigo='" + entidad.getTipo() + "',mod_codigo='" + mo.getCodigomodulo() + "' where asig_codigo='" + entidad.getCodigo() + "'  ";
        ejec.ejecutar2(sql);
        v.msm = ejec.getMen();
    }

    @Override
    public CachedRowSetImpl getLista_tabla(String modulo) {
        try {

            v.crs = (CachedRowSetImpl) ejec.rellena2("select  asig.ASIG_CODIGO,ti.TI_DESCRIPCION,asig.TI_CODIGO,modu.MOD_NOMBRE,asig.ASIG_NOMBRE,asig.MOD_CODIGO,asig.asig_numerocreditos from MODULO modu,ASIGNATURA asig,TIPO_INFORMACION ti where ti.TI_CODIGO=asig.TI_CODIGO  and  modu.MOD_CODIGO=asig.MOD_CODIGO and  modu.MOD_CODIGO='" + modulo + "' order by asig.ASIG_NOMBRE");
        } catch (Exception ex) {
            Logger.getLogger(neg_asignatura.class.getName()).log(Level.SEVERE, null, ex);
        }
        return v.crs;
    }

    @Override
    public CachedRowSetImpl getListacomboasignatura(String cod) {
        try {

            v.crs2 = (CachedRowSetImpl) ejec.rellena2("select  (asig.ASIG_NOMBRE|| '_' ||asig.ASIG_NUMEROCREDITOS) as ASIG_NOMBRE, asig.ASIG_CODIGO from MODULO modu,ASIGNATURA asig  where  modu.MOD_CODIGO=asig.MOD_CODIGO and  modu.MOD_CODIGO='" + cod + "'");
        } catch (Exception ex) {
            Logger.getLogger(neg_asignatura.class.getName()).log(Level.SEVERE, null, ex);
        }
        return v.crs2;
    }

    @Override
    public CachedRowSetImpl getListaactualizada(String cod) {
        try {
            v.crs3 = (CachedRowSetImpl) ejec.rellena2("select  asig.ASIG_CODIGO,(asig.ASIG_NOMBRE|| '__' ||asig.ASIG_NUMEROCREDITOS) as ASIG_NOMBRE from MODULO modu,ASIGNATURA asig  where  modu.MOD_CODIGO=asig.MOD_CODIGO and  modu.MOD_CODIGO='" + cod + "' order by asig.ASIG_NOMBRE");
        } catch (Exception ex) {
            Logger.getLogger(neg_asignatura.class.getName()).log(Level.SEVERE, null, ex);
        }
        return v.crs3;
    }

    @Override
    public String getmensajei() {
        String sdr = "";
        sdr = v.msm;
        return sdr;
    }

    @Override
    public CachedRowSetImpl nombre_asignatura(String cod) {
         try {

            v.crs = (CachedRowSetImpl) ejec.rellena2("select  asig_nombre from asignatura where asig_codigo='" + cod + "'");
        } catch (Exception ex) {
            Logger.getLogger(neg_asignatura.class.getName()).log(Level.SEVERE, null, ex);
        }
        return v.crs;
    }

    @Override
    public CachedRowSetImpl nombre_programa(String cod) {
      try {

            v.crs4 = (CachedRowSetImpl) ejec.rellena2("select (pp.PP_NOMBRE||' '||prom.pro_nombre||' , paralelo '||pl.pl_nombre) as nombre from FECHA_DIA fd,PROGRAMA_POSTGRADO pp,PROMOCION prom,PARALELO pl where fd.PROM_CODIGO=prom.PROM_CODIGO and prom.PP_CODIGO=pp.PP_CODIGO and pl.PL_CODIGO=prom.PL_CODIGO and fd.FD_CODIGO='"+cod+"'");
        } catch (Exception ex) {
            Logger.getLogger(neg_asignatura.class.getName()).log(Level.SEVERE, null, ex);
        }
        return v.crs4;
    }

    @Override
    public CachedRowSetImpl nombre_coordinador(String prog) {
       try {

            v.crs5 = (CachedRowSetImpl) ejec.rellena2("select (prof.PR_NOMBRES||' '||prof.pr_apellidos) as nombres from PROGRAMA_POSTGRADO prog, COORDINADOR_PROGRAMA coor,PROFESOR prof where prog.PR_CEDULA=coor.PR_CEDULA and coor.PR_CEDULA=prof.PR_CEDULA and prog.PP_CODIGO='"+prog+"'");
        } catch (Exception ex) {
            Logger.getLogger(neg_asignatura.class.getName()).log(Level.SEVERE, null, ex);
        }
        return v.crs5;
    
    }

    @Override
    public CachedRowSetImpl lista_creditos(String cod) {
       try {

            v.crs1 = (CachedRowSetImpl) ejec.rellena2("select sum(asig_numerocreditos) as ASIG_NUMEROCREDITOS from asignatura asi where asi.MOD_CODIGO='"+cod+"'");
        } catch (Exception ex) {
            Logger.getLogger(neg_asignatura.class.getName()).log(Level.SEVERE, null, ex);
        }
        return v.crs1;
    }

    @Override
    public CachedRowSetImpl num_credito_modulo(String cod) {
         try {

            v.crs5 = (CachedRowSetImpl) ejec.rellena2("select mod_numerocreditos from modulo mo where mo.MOD_CODIGO='"+cod+"'");
        } catch (Exception ex) {
            Logger.getLogger(neg_asignatura.class.getName()).log(Level.SEVERE, null, ex);
        }
        return v.crs5;
    }
}
